#ifndef DependencyDecoder3OGSibling_H
#define DependencyDecoder3OGSibling_H
#include"DependencyDecoder2O.h"

class DependencyDecoder3OGSibling : public DependencyDecoder2O{
public:
	DependencyDecoder3OGSibling(DependencyPipe *pipe);
	
	virtual ~DependencyDecoder3OGSibling();

	vector<pair<FeatureVector*, string*> >* decodeProjective(DependencyInstance* inst,
		vector<vector<vector<double> > > &probs, vector<vector<vector<double> > > &probs_trips,
		vector<vector<vector<double> > > &probs_sibs, vector<vector<vector<double> > > &probs_grands,
		vector<vector<double> > &probs_gchs, vector<vector<vector<vector<double> > > > &probs_gtrips, 
		vector<vector<vector<vector<double> > > > &probs_gsibs, vector<vector<vector<double> > > &probs_coords, 
		vector<vector<vector<vector<double> > > > &nt_probs, int K);

	double getGrandTripProb(int gpar, int par, int ch1, int ch2, vector<vector<vector<vector<double> > > > &probs_gtrips);
};
#endif

